/*
*编写函数打开文件用于输入，将文件内容读入string类型的vector容器中，每一行存储该容器对象的一个元素
*/
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;

int fileToVector(string fileName,vector<string> &svec)
{
	//用于记录流的状态
	int result;

	//创建ifstream对像ism，并绑定文件fileName
	ifstream ism(fileName.c_str());

	//将文件内容读入string类型的vector容器中
	string s;
	while(getline(ism,s))
	{
		svec.push_back(s);
	}

	//关闭文件
	ism.close();

	if(ism.eof())
	{
		result = 0;
	}
	else if(ism.bad())
	{
		result = 1;
	}
	else if(ism.fail())
	{
		result = 2;
	}

	return result;
}

int main()
{
	vector<string> svec;
	string fileName;
	cout << "请输入文件名:";
	cin >> fileName;

	//检查函数是否返回0，如果返回0则表示成功读取到文件末尾，否则则表示流处于错误状态
	if(fileToVector(fileName,svec) != 0)
	{
		cerr << "文件读取过程中发生错误，请检查文件！错误代码：" << fileToVector(fileName,svec) << endl;
	}
	else
	{
		for(vector<string>::iterator iter = svec.begin();iter != svec.end();iter++)
		{
			cout << *iter << endl;
		}
	}
	system("pause");
	return 0;
}